//
//  GameManager.h
//  MyPopStar
//
//  Created by tarena on 16/1/6.
//  Copyright © 2016年 ssnb. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "StarGroupView.h"

typedef enum {
    StartTypeNew,
    StartTypeResum,
    StartTypePass
}StartType;

typedef enum {
    GameStatusPass,
    GameStatusOver
} GameStatus;

@class GameManager;
@protocol GameManagerDelegate <NSObject>
/**
 *  @author ssnb, 16-01-12 14:01:37
 *
 *  用于返回游戏结束时候的状态(结束/通过)
 *
 *  @param manager 控制器对象
 *  @param status  over/pass
 */
-(void)GameManager:(GameManager *)manager GameOverStatus:(GameStatus) status;

-(void)GameManager:(GameManager *)manager;
/**
 *  @author ssnb, 16-01-12 14:01:29
 *
 *  返回当前关数
 *
 *  @param manager 控制器对象
 *  @param level   当前关数
 */
-(void)GameManager:(GameManager *)manager GameLevel:(NSInteger)level;//返回关数
/**
 *  @author ssnb, 16-01-12 14:01:10
 *
 *  返回消除的分数后的得分
 *
 *  @param manager 控制器对象
 *  @param score   当前分数
 */
-(void)GameManager:(GameManager *)manager GameScore:(NSInteger)score;//返回分数
/**
 *  @author ssnb, 16-01-12 14:01:54
 *
 *  返回当前关卡的目标分数
 *
 *  @param manager 控制器对象
 *  @param score   目标分数
 */
-(void)GameManager:(GameManager *)manager GameTargetScore:(NSInteger)score;

/**
 *  @author ssnb, 16-01-13 19:01:01
 *
 *  当前最高分改变的时候调用
 *
 *  @param manager   控制器对象
 *  @param bestScore 当前最高分
 */
-(void)GameManager:(GameManager *)manager bestScore:(NSInteger)bestScore;
@end

@interface GameManager : NSObject
@property (nonatomic,weak) id<GameManagerDelegate> delegate;
//singleton_interface(GameManager);

/**
 *  @author ssnb, 16-01-07 16:01:15
 *
 *  获取游戏界面,用于加载到父视图中
 *
 *  @return 返回游戏主界面
 */
-(StarGroupView *)getGameView;

/**
 *  @author ssnb, 16-01-07 16:01:34
 *
 *  启动游戏通过新建/恢复/通关
 *
 *  @param type 重启的类型(新建/恢复/通关)
 */
-(void)startWithType:(StartType)type;
-(void)saveData;

/**
 *  @author ssnb, 16-01-07 16:01:06
 *
 *  退出游戏,释放资源
 */
-(void)over;


@end
